home *** CD-ROM | disk | FTP | other *** search
/ Champak 138 / Volume 138 Aug 19 2011 - Damaged.iso / Games / shadez.swf / scripts / com / kongregate / as3 / client / KongregateAPI.as < prev   
Encoding:
Text File  |  2011-08-19  |  8.4 KB  |  264 lines

  1. package com.kongregate.as3.client
  2. {
  3.    import com.kongregate.as3.client.events.KongregateEvent;
  4.    import com.kongregate.as3.client.services.HighScoreServiceShadow;
  5.    import com.kongregate.as3.client.services.IHighScoreServices;
  6.    import com.kongregate.as3.client.services.IKongregateServices;
  7.    import com.kongregate.as3.client.services.IStatServices;
  8.    import com.kongregate.as3.client.services.IUserServices;
  9.    import com.kongregate.as3.client.services.KongregateServiceShadow;
  10.    import com.kongregate.as3.client.services.StatServiceShadow;
  11.    import com.kongregate.as3.client.services.UserServiceShadow;
  12.    import flash.display.Loader;
  13.    import flash.display.LoaderInfo;
  14.    import flash.display.Sprite;
  15.    import flash.errors.IOError;
  16.    import flash.errors.IllegalOperationError;
  17.    import flash.events.Event;
  18.    import flash.events.IOErrorEvent;
  19.    import flash.events.TimerEvent;
  20.    import flash.net.URLRequest;
  21.    import flash.system.ApplicationDomain;
  22.    import flash.system.LoaderContext;
  23.    import flash.system.Security;
  24.    import flash.system.SecurityDomain;
  25.    import flash.utils.*;
  26.    
  27.    [Embed(source="/_assets/assets.swf", symbol="com.kongregate.as3.client.KongregateAPI")]
  28.    public class KongregateAPI extends Sprite
  29.    {
  30.       
  31.       private static var _connected:Boolean;
  32.       
  33.       private static var kUser:IUserServices;
  34.       
  35.       private static const CLASS_USER:String = "com.kongregate.as3.client.services.UserServices";
  36.       
  37.       private static const CLASS_STATS:String = "com.kongregate.as3.client.services.StatServices";
  38.       
  39.       private static var _loaded:Boolean;
  40.       
  41.       private static const CLASS_SERVICES:String = "com.kongregate.as3.client.services.KongregateServices";
  42.       
  43.       private static const CLASS_SCORES:String = "com.kongregate.as3.client.services.HighScoreServices";
  44.       
  45.       private static var kServices:IKongregateServices;
  46.       
  47.       private static var kScores:IHighScoreServices;
  48.       
  49.       private static var mInstance:KongregateAPI;
  50.       
  51.       private static var kStats:IStatServices;
  52.       
  53.       private static var kAPI:IAPIBootstrap;
  54.       
  55.       private static const DEBUG_API_URL:String = "//Linuxpc/kongregate/public/flash/API_AS3.swf";
  56.       
  57.       {
  58.          if(true)
  59.          {
  60.             DEBUG_API_URL = "//Linuxpc/kongregate/public/flash/API_AS3.swf";
  61.             if(true)
  62.             {
  63.                CLASS_SERVICES = "com.kongregate.as3.client.services.KongregateServices";
  64.                if(true)
  65.                {
  66.                   CLASS_SCORES = "com.kongregate.as3.client.services.HighScoreServices";
  67.                }
  68.                CLASS_STATS = "com.kongregate.as3.client.services.StatServices";
  69.             }
  70.             CLASS_USER = "com.kongregate.as3.client.services.UserServices";
  71.          }
  72.       }
  73.       
  74.       private var loader:Loader;
  75.       
  76.       private var loadedDomain:ApplicationDomain;
  77.       
  78.       private const VERSION:Number = 1;
  79.       
  80.       public function KongregateAPI()
  81.       {
  82.          if(true)
  83.          {
  84.             super();
  85.             if(true)
  86.             {
  87.                if(mInstance != null)
  88.                {
  89.                   if(true)
  90.                   {
  91.                      throw new Error("Warning: KongregateAPI has been added to stage more than once or accessed improperly. Use getInstance() or a stage reference to access.");
  92.                   }
  93.                }
  94.                mInstance = this;
  95.             }
  96.             this.addEventListener(Event.ADDED_TO_STAGE,init,false,0,true);
  97.          }
  98.       }
  99.       
  100.       public static function getInstance() : KongregateAPI
  101.       {
  102.          ┬º┬ºpush(mInstance);
  103.          if(true)
  104.          {
  105.             if(!┬º┬ºpop())
  106.             {
  107.                throw new IllegalOperationError("You must add the Kongregate API component to the stage before attempting to access it.");
  108.             }
  109.             ┬º┬ºpush(mInstance);
  110.          }
  111.          return ┬º┬ºpop();
  112.       }
  113.       
  114.       public function get loaded() : Boolean
  115.       {
  116.          return _loaded;
  117.       }
  118.       
  119.       public function get connected() : Boolean
  120.       {
  121.          return _connected;
  122.       }
  123.       
  124.       private function alertConnected(param1:TimerEvent = null) : void
  125.       {
  126.          var _loc2_:KongregateEvent = null;
  127.          var _loc3_:Boolean = false;
  128.          _loc2_ = new KongregateEvent(KongregateEvent.COMPLETE);
  129.          if(true)
  130.          {
  131.             _loc3_ = this.dispatchEvent(_loc2_);
  132.          }
  133.       }
  134.       
  135.       private function init(param1:Event) : void
  136.       {
  137.          var _loc2_:Object = null;
  138.          var _loc3_:* = null;
  139.          var _loc4_:URLRequest = null;
  140.          var _loc5_:LoaderContext = null;
  141.          this.removeEventListener(Event.ADDED_TO_STAGE,init);
  142.          _loaded = false;
  143.          _connected = false;
  144.          _loc2_ = LoaderInfo(root.loaderInfo).parameters;
  145.          ┬º┬ºpush(String(_loc2_.api_path));
  146.          if(true)
  147.          {
  148.             _loc3_ = ┬º┬ºpop();
  149.             ┬º┬ºpush(_loc3_);
  150.          }
  151.          if(┬º┬ºpop() == null)
  152.          {
  153.             trace("Alert: Kongregate API could not be loaded, due to local testing. API will load when the game is uploaded.");
  154.             createShadowServices();
  155.             return;
  156.          }
  157.          Security.allowDomain("*.kongregate.com");
  158.          Security.allowDomain("kongregatetrunk.com");
  159.          _loc4_ = new URLRequest(_loc3_);
  160.          (_loc5_ = new LoaderContext(false)).applicationDomain = ApplicationDomain.currentDomain;
  161.          _loc5_.securityDomain = SecurityDomain.currentDomain;
  162.          loader = new Loader();
  163.          loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadComplete);
  164.          loader.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
  165.          loader.load(_loc4_,_loc5_);
  166.       }
  167.       
  168.       public function get api() : IAPIBootstrap
  169.       {
  170.          return kAPI;
  171.       }
  172.       
  173.       private function loadComplete(param1:Event) : void
  174.       {
  175.          getServices();
  176.       }
  177.       
  178.       public function get scores() : IHighScoreServices
  179.       {
  180.          return kScores;
  181.       }
  182.       
  183.       private function ioErrorHandler(param1:IOErrorEvent) : void
  184.       {
  185.          throw new IOError("API file not found. " + param1);
  186.       }
  187.       
  188.       public function get services() : IKongregateServices
  189.       {
  190.          return kServices;
  191.       }
  192.       
  193.       public function get stats() : IStatServices
  194.       {
  195.          return kStats;
  196.       }
  197.       
  198.       private function createShadowServices() : void
  199.       {
  200.          var _loc1_:Timer = null;
  201.          if(true)
  202.          {
  203.             trace(">>> Kongregate Shadow Services instantiated for local development..");
  204.             if(true)
  205.             {
  206.                kServices = new KongregateServiceShadow();
  207.                if(true)
  208.                {
  209.                   kScores = new HighScoreServiceShadow();
  210.                }
  211.                kStats = new StatServiceShadow();
  212.             }
  213.             kUser = new UserServiceShadow();
  214.          }
  215.          _loc1_ = new Timer(200,1);
  216.          if(true)
  217.          {
  218.             _loc1_.addEventListener(TimerEvent.TIMER_COMPLETE,alertConnected);
  219.             if(true)
  220.             {
  221.                _loc1_.start();
  222.             }
  223.             _connected = true;
  224.          }
  225.       }
  226.       
  227.       public function get user() : IUserServices
  228.       {
  229.          return kUser;
  230.       }
  231.       
  232.       private function getServices() : void
  233.       {
  234.          var _loc1_:ApplicationDomain = null;
  235.          var _loc2_:* = undefined;
  236.          var _loc3_:* = undefined;
  237.          var _loc4_:* = undefined;
  238.          var _loc5_:* = undefined;
  239.          _loc1_ = ApplicationDomain.currentDomain;
  240.          kAPI = IAPIBootstrap(loader.getChildAt(0));
  241.          this.addChild(loader);
  242.          _loc2_ = _loc1_.getDefinition(CLASS_SERVICES);
  243.          if(true)
  244.          {
  245.             trace(_loc2_);
  246.             kServices = _loc2_.getInstance();
  247.          }
  248.          _loc3_ = _loc1_.getDefinition(CLASS_SCORES);
  249.          kScores = _loc3_.getInstance();
  250.          _loc4_ = _loc1_.getDefinition(CLASS_STATS);
  251.          if(true)
  252.          {
  253.             kStats = _loc4_.getInstance();
  254.          }
  255.          _loc5_ = _loc1_.getDefinition(CLASS_USER);
  256.          kUser = _loc5_.getInstance();
  257.          kServices.connect(VERSION);
  258.          _loaded = true;
  259.          _connected = true;
  260.          alertConnected();
  261.       }
  262.    }
  263. }
  264.